(sit_for): Signal error if TIMEOUT is not a number in case arg comes
authorKim F. Storm <storm@cua.dk>
Tue, 11 Jul 2006 22:54:28 +0000 (22:54 +0000)
committerKim F. Storm <storm@cua.dk>
Tue, 11 Jul 2006 22:54:28 +0000 (22:54 +0000)
directly from a Lisp variable.

src/dispnew.c

index 3519e2d64fe71e424f2138736d4e429f179011aa..018717e591f23633dfc949a5922c0e3093c3b152 100644 (file)
@@ -6519,17 +6519,21 @@ sit_for (timeout, reading, do_display)
   if (do_display >= 2)
     redisplay_preserve_echo_area (2);
 
-  if (FLOATP (timeout))
+  if (INTEGERP (timeout))
     {
-      double seconds = XFLOAT_DATA (timeout);
+      sec = XFASTINT (timeout);
+      usec = 0;
+    }
+  else if (FLOATP (timeout))
+    {
+      double seconds;
+
+      seconds = XFLOAT_DATA (timeout);
       sec = (int) seconds;
       usec = (int) ((seconds - sec) * 1000000);
     }
   else
-    {
-      sec = XFASTINT (timeout);
-      usec = 0;
-    }
+    wrong_type_argument (Qnumberp, timeout);
 
   if (sec == 0 && usec == 0)
     return Qt;